home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group95b.txt
/
000046_icon-group-sender _Fri Jun 16 11:42:08 1995.msg
< prev
next >
Wrap
Internet Message Format
|
1995-09-18
|
3KB
Received: by cheltenham.cs.arizona.edu; Fri, 16 Jun 1995 16:24:48 MST
To: icon-group@cs.arizona.edu
Date: 16 Jun 1995 11:42:08 -0700
From: scott@cs.arizona.edu (Scott E Gilbert)
Message-Id: <3rsja0$2jm@lectura.CS.Arizona.EDU>
Organization: University of Arizona CS Department, Tucson AZ
Sender: icon-group-request@cs.arizona.edu
References: <3rpcmd$ie0@canopus.cc.umanitoba.ca>, <3rqsq6$g9s@lectura.CS.Arizona.EDU>, <3rsf2v$1e@lectura.CS.Arizona.EDU>
Subject: Re: Language features & behavior of &null (was Re: ICON vs Ted Nelson)
Errors-To: icon-group-errors@cs.arizona.edu
Dave Schaumann <dave@CS.Arizona.EDU> wrote:
>In article <3rqsq6$g9s@lectura.CS.Arizona.EDU>,
>Scott E Gilbert <scott@CS.Arizona.EDU> wrote:
>>
>>Ok, so lets spark up a thread of our own. What are your least and most
>>favorite features about Icon? What would you change?
>
>Mostly what I don't like about Icon is some important (IMHO) things
>are missing. Most obviously, some general interface to system calls
>would make Icon much more useful for programming in shell-script
>situations. Also, it would be nice if Icon had some facility for
>writing large programs (ie, name space control, inline functions,
>enumerated types, real booleans, etc).
>
Well, I sort of agree. I'd like to see a new top level declaration to go
aside "global" and "procedure" that would presumably be called "object", and
then some scoping modifiers for inside this such as "private" or "hidden"
and "public" or something like that. Carry the OOP stuff far enough, and
that would fix any concerns about "large" programs. I'd also like to be
able to nest procedure declarations. All of this would make it a completely
different language though.
As for system calls and what not, I'd like to see a documented and clean
interface to things likes pipes and sockets. I'm sure there is some hidden
option to open() that will handle it, but I haven't seen it documented
anywhere.
>
>>Personally, I'd like to see the &null value act as a general purpose
>>identity for all of the operators except when used as a procedure call.
>
>I disagree. IMHO, this is one place where Icon got it right. One of
>my pet peeves is when some obscure default of a language hides an error
>I've made by leaving something out. If I've forgotton to initialize
>a variable, I want to know it.
>
You're one of those people who insists on using "local" inside of every
procedure and compiling with the -u option aren't you. :) I personally
just try to make every variable local, then you don't need to worry about it.
I guess this is just a style issue. I tend to write lots of tiny procedures
instead of fewer big ones, and that makes it difficult to lose track of what
and where. The one case where this hurts is typos.
What I hate is using a language where all of the type information is carried
around for you at run time, but you still have to do stuff like:
t:= table()
S:= set()
l:= list()
s:= ""
before you can build on anything. I mean you might as well go back to
declaring the type at the top of the procedure like you do in C or Pascal.